summaryrefslogtreecommitdiff
path: root/src/pages/blog/[slug].jsx
diff options
context:
space:
mode:
authorRafi Zadanly <zadanlyr@gmail.com>2023-03-29 14:29:29 +0700
committerRafi Zadanly <zadanlyr@gmail.com>2023-03-29 14:29:29 +0700
commit1d606fe88f97f87e32a58b1b187a71f40c70169c (patch)
tree3045839e7e9362f1b851d182614f6ed3ae04af80 /src/pages/blog/[slug].jsx
parentac230a35f325cc47e89fd5d635847536f2dd9b44 (diff)
blog detail
Diffstat (limited to 'src/pages/blog/[slug].jsx')
-rw-r--r--src/pages/blog/[slug].jsx54
1 files changed, 54 insertions, 0 deletions
diff --git a/src/pages/blog/[slug].jsx b/src/pages/blog/[slug].jsx
index e69de29b..63e53bf0 100644
--- a/src/pages/blog/[slug].jsx
+++ b/src/pages/blog/[slug].jsx
@@ -0,0 +1,54 @@
+import Link from '@/core/components/elements/Link/Link'
+import BasicLayout from '@/core/components/layouts/BasicLayout'
+import { createSlug, getIdFromSlug } from '@/core/utils/slug'
+import useBlog from '@/lib/blog/hooks/useBlog'
+import { useRouter } from 'next/router'
+
+export default function BlogDetail() {
+ const router = useRouter()
+ const { slug = '' } = router.query
+ const id = getIdFromSlug(slug)
+ const { blog } = useBlog({ id })
+
+ const parsedContent = blog.data?.content?.replaceAll(
+ 'src="/web/image',
+ `src="${process.env.NEXT_PUBLIC_ODOO_HOST}/web/image`
+ )
+
+ const contentClassNames = `
+ prose
+ prose-gray
+ prose-a:text-red_r-10
+ prose-a:no-underline
+ prose-p:my-4
+ prose-headings:mt-6
+ prose-headings:mb-3
+ prose-headings:font-medium
+ prose-h1:text-title-sm
+ prose-h2:text-h-md
+ prose-img:my-0
+ prose-img:mb-1
+ prose-img:inline-block
+ prose-hr:my-3
+ max-w-none
+ `
+
+ return (
+ <BasicLayout>
+ <div className='container mx-auto p-4 md:p-0 my-0 md:my-10'>
+ <h1 className='text-title-sm md:text-title-md font-semibold mb-2 leading-10'>
+ {blog.data?.title}
+ </h1>
+ <h2 className='leading-6 text-gray_r-12/90 mb-8'>
+ Diposting pada tanggal {blog.data?.postDate}{' '}
+ {blog.data?.category?.id && `di ${blog.data?.category?.name}`}
+ </h2>
+
+ <article
+ className={contentClassNames}
+ dangerouslySetInnerHTML={{ __html: parsedContent }}
+ />
+ </div>
+ </BasicLayout>
+ )
+}